package day02;

import java.sql.SQLOutput;

//数据类型演示
public class DataTypeDemon {
    public static void main(String[] args) {
        System.out.println(2+2);//4
        System.out.println('2'+2);//52,2的码的加2
        System.out.println('2'+'2');//100,2的码加2的码
        System.out.println('2');//2,没有做运算所以不转int
          char a = 500;
        System.out.println(a);//查看500码的字符
        int name = '牛';
        System.out.println(name);
        /*
        int a = 5;
        long b = a;//自动类型转换
        int c =(int)b;//强制类型转换
        System.out.println(a);
        System.out.println(c);
        long d = 5;//自动类型转换
        double e = 6;//强制类型转换
        System.out.println(e);//5.0
        long f = 100000000000L;
        int g = (int) f;
        System.out.println(g);//强转有可能发生溢出
        double h = 2.025;
        int i = (int)h;
        System.out.println(i);//强转可能发生精度丢失
         */



        /*
        //char:字符型,2个字节
        //a=97,A=65,0=48
        char c1 = 6;
        char c2 = '5';
        char c3= '男' ;
        //char c4  = 男  ;错误,字符直接量必须放在单引号中
        //char c5 = '10';错误,只能装一个字符
        //char c6 = '';必须要有字符
        char c7 = 65;//0--65535之间
        System.out.println(c7);//'A',println|()时会依据c7de类型来做输出
                               //若c7为char类型,则以字符形式展示
                               //若c7为int类型,则以数字形式展示
        char c8 = '\'';
        System.out.println(c8);//输出字符'
        char c9 = '\\';
        System.out.println(c9);//输出字符\
         */



        /*//boolean:布尔型,1个字节
        boolean a = true;//true为布尔型直接量
        boolean b = false;//false为布尔型直接量
        //boolean c = 123;编译错误,布尔型只能存储true或false
         */



        /*
         //double:浮点型,8个字节,很大很大很大很大
        double a  = 1000.0;//为小数直接量,默认为double型
        float b = 100.013F;//为float型直接量
        double c = 20.3,d = 2.33;
        System.out.println(c-d);//可能会发生舍入误差
         */



        /*
        long a = 25L;//25L为长整形直接量
        //long b = 100000000000;编译错误,一百亿默认为int类型,但超出int范围
        long c = 100000000000L;
        long d = 365L*24*60*60*1000;
        System.out.println(d);//一年所经历的毫秒数
        long e = 1000000000*2*10L;
        System.out.println(e);//二百亿
        long f = 1000000000*3*10L;
        System.out.println(f);//不是三百亿
        long g = 1000000000L*3*10;
        System.out.println(g);//三百亿
         */



        /*
        int a = 250;
        //int b = 100000000000;编译错误,一百亿默认为int类型,但超出范围
       //  int c = 23.444;编译错误,整型变量中只能装整数
        System.out.println(6/4);//输出为1
        System.out.println(4/5);//输出0
        System.out.println(5/2.3);//输出为小数
        int d = 2147183647;//int的最大值
        d = d+1;
        System.out.println(d);//-2147483648,发生溢出
        */
    }
}
